<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="../公用CSS文件/all.css" />
    <script type="text/javascript" src="../js/jquery.min.js"></script> 	<script type="text/javascript" src="../js/js.js"></script>
    <meta charset="utf-8">
    <style type="text/css">
        table{min-width:80%}
    </style>
</head>
<body>

<div class="dt">HTTP协议</div>
<ul>
    <div class="ltable showimg">HTTP协议概念</div>
    <div class="img">
        <li>HTTP协议是Hyper Text Transfer Protocol（超文本传输协议）的缩写,是用于从万维网（WWW:World Wide Web ）服务器传输超文本到本地浏览器的基于TCP/IP协议传送数据的、应用层面向对象的B/S(客服端-服务器)架构的传送协议。</li>
        <li>HTTP于1990年提出，由于其简捷、快速的方式得到不断地完善和扩展</li>
    </div>

    <div class="ltable showimg">HTTP状态码头数字</div>
    <div class="img">
        <table>
            <tr>
                <th>头数字</th><th>意义</th><th>报文组成和场景</th>
            </tr>
            <tr>
                <td>1</td>
                <td>请求的执行需要用户确认可选的信息</td>
                <td>报文只包含状态行和某些可选的响应头信息，并以空行结束(HTTP1.0不支持)</td>
            </tr>
            <tr>
                <td>2</td>
                <td>请求已成功被服务器接收、理解、并接受</td>
                <td>临时回应服务端对客户端请求的理解程度，表示已经理解但需要进一步处理</td>
            </tr>
            <tr>
                <td>3</td>
                <td>需要客户端采取进一步的操作才能完成请求。通常，这些状态码用来重定向</td>
                <td>请求的资源在另一个url地址、或使用另外的访问方式、或以缓存响应(304)</td>
            </tr>
            <tr>
                <td>4</td>
                <td>客户端请求错误，妨碍了服务器的处理</td>
                <td>请求语法有误、需要权限认证、资源不允许访问、资源未找到等</td>
            </tr>
            <tr>
                <td>5</td>
                <td>服务器在处理请求的过程中有错误发生，或者以当前的软硬件资源无法完成对请求的处理</td>
                <td>服务器源代码发生错误、服务器过载、HTTP协议版本不支持等</td>
                <td></td>
            </tr>
            <tr>
                <td>6</td>
                <td>仅600一种状态码，代表第三方源站未返回响应头只返回实体内容</td>
                <td>同意义说明</td>
                <td></td>
            </tr>
        </table>
        <li>头数字1只有100 continue和101 switch protocols两种状态，101代表客户端需要确认可选信息，101代表客户端需要upgrade升级HTTP协议</li>
        <li>仅重定向的地址为GET或者HEAD请求时才会自动跳转，HTTP/1.0规范浏览器不应自动访问超过5次的重定向</li>
        <li>304响应客户端会本地存储本次响应数据此时客户端认为status code为200，缓存存在时第二次服务器告知缓存还可以使用，客户端则从缓存中取出内容</li>
    </div>

    <div class="ltable showimg">成功</div>
    <div class="img">
        <table>
            <tr>
                <th>状态码</th><th>英文释文</th><th>意义</th>
            </tr>
            <tr>
                <td>200</td>
                <td>OK</td>
                <td>请求已成功，请求所希望的响应头或数据体将随此响应返回</td>
            </tr>
            <tr>
                <td>201</td>
                <td>Created</td>
                <td>请求已经被实现，而且有一个新的资源已经依据请求的需要而建立，且其URI已经随Location头信息返回</td>
            </tr>
            <tr>
                <td>202</td>
                <td>Accepted</td>
                <td>服务器已接受请求，但尚未处理。多用于异步场合操作</td>
            </tr>
            <tr>
                <td>203</td>
                <td>Non-Authoritative Information</td>
                <td>非权威信息，服务器返回的是原始资源服务器的内容，但可能不完全一致</td>
            </tr>
            <tr>
                <td>204</td>
                <td>No Content</td>
                <td>服务器返回的信息中不包含数据内容</td>
            </tr>
            <tr>
                <td>205</td>
                <td>Reset Content</td>
                <td>服务器返回的信息不包含数据内容，但客户端应该重置视图(例如输入账号服务器接收之后需要用户输入密码)</td>
            </tr>
            <tr>
                <td>206</td>
                <td>Partial Content</td>
                <td>服务器发送的仅仅是部分内容。多用于断点续传(迅雷)</td>
            </tr>
        </table>
        <li>仅重定向的地址为GET或者HEAD请求时才会自动跳转，HTTP/1.0规范浏览器不应自动访问超过5次的重定向</li>
    </div>

    <div class="ltable showimg">重定向</div>
    <div class="img">
        <table>
            <tr>
                <th>状态码</th><th>英文释文</th><th>意义</th>
            </tr>
            <tr>
                <td>300</td>
                <td>Multiple Choices</td>
                <td>多项选择。请求的资源有一系列可供选择的回馈信息，每个都有自己特定的地址</td>
            </tr>
            <tr>
                <td>301</td>
                <td>Moved Permanently</td>
                <td>永久转移。请求的资源已经永久转移到另外的地址</td>
            </tr>
            <tr>
                <td>302</td>
                <td>Found</td>
                <td>暂时转移。和301的区别是客户端下次请求依然进行资源地址确认而不是使用缓存的重定向地址直接访问</td>
            </tr>
            <tr>
                <td>303</td>
                <td>See Other</td>
                <td>查看其它信息。重定向到的资源并不是你所请求的资源，而是对你所请求资源的一些描述(处理post请求转移到回馈信息页)</td>
            </tr>
            <tr>
                <td>304</td>
                <td>Not Modified</td>
                <td>资源未变更。服务器告知客户本地缓存中的数据依然可用，如果客户端无缓存服务器最终返回一个200状态</td>
            </tr>
            <tr>
                <td>305(1.1弃用)</td>
                <td>Use Proxy</td>
                <td>被请求的资源必须通过指定的代理才能被访问</td>
            </tr>
            <tr>
                <td>307</td>
                <td>Temporary Redirect</td>
                <td>临时重定向。和302的区别是post请求不允许重定向到get地址</td>
            </tr>
        </table>
    </div>

    <div class="ltable showimg">请求错误</div>
    <div class="img">
        <table>
            <tr>
                <th>状态码</th><th>英文释文</th><th>含义</th>
            </tr>
            <tr>
                <td>400</td>
                <td>Bad Request</td>
                <td>错误请求。可能是语法有误或者参数错误</td>
            </tr>
            <tr>
                <td>401</td>
                <td>Unauthorized</td>
                <td>未经授权。当前请求需要用户验证</td>
            </tr>
            <tr>
                <td>402</td>
                <td>Payment Required</td>
                <td>需要付款。暂时未被使用</td>
            </tr>
            <tr>
                <td>403</td>
                <td>Forbidden</td>
                <td>禁止访问。服务器已经理解请求，但是拒绝执行它</td>
            </tr>
            <tr>
                <td>404</td>
                <td>Not Found</td>
                <td>资源未找到。求所希望得到的资源未被在服务器上发现</td>
            </tr>
            <tr>
                <td>405</td>
                <td>Method Not Allowed</td>
                <td>请求方式不允许。apache默认不支持put请求此时对put请求则返回此状态码，并会附带一个支持的method的描述字段</td>
            </tr>
            <tr>
                <td>406</td>
                <td>Not Acceptable</td>
                <td>请求不可接受。请求的资源的内容特性无法满足请求头中的条件，因而无法生成响应实体，例如编码、语言等</td>
            </tr>
            <tr>
                <td>407</td>
                <td>Proxy Authentication Required</td>
                <td>需要代理身份验证。和401类似，区别在于客户端需要再代理服务器上进行身份验证</td>
            </tr>
            <tr>
                <td>408</td>
                <td>Request Timeout</td>
                <td>请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送</td>
            </tr>
            <tr>
                <td>409</td>
                <td>Conflict</td>
                <td>冲突。由于和被请求的资源的当前状态之间存在冲突，请求无法完成。通常是put请求附带的版本信息和服务器冲突</td>
            </tr>
            <tr>
                <td>410</td>
                <td>Gone</td>
                <td>失效。被请求的资源在服务器上已经不再可用，而且没有任何已知的转发地址</td>
            </tr>
            <tr>
                <td>411</td>
                <td>Length Required</td>
                <td>必须指明长度。服务器拒绝在没有定义 Content-Length 头的情况下接受请求</td>
            </tr>
            <tr>
                <td>412</td>
                <td>Precondition Failed</td>
                <td>先决条件有误。请求头信息没有满足必须确定的先决条件</td>
            </tr>
            <tr>
                <td>413</td>
                <td>Request Entity Too Large</td>
                <td>请求实体过大。请求提交的实体数据超过了服务器愿意处理的范围</td>
            </tr>
            <tr>
                <td>414</td>
                <td>Request-URI Too Long</td>
                <td>请求URI太长。请求的URI长度超出了服务器能够解释的范围</td>
            </tr>
            <tr>
                <td>415</td>
                <td>Unsupported Media Type</td>
                <td>不支持的多媒体类型。请求提交的实体不是服务器所支持的格式</td>
            </tr>
            <tr>
                <td>416</td>
                <td>Requested Range Not Satisfiable</td>
                <td>请求范围不满足。通常是使用range指定一个资源的起始字节或起始区间，但服务器资源无法满足</td>
            </tr>
            <tr>
                <td>417</td>
                <td>Expectation Failed</td>
                <td>期望失败。在请求头Expect中指定的预期内容无法被服务器满足</td>
            </tr>
            <tr>
                <td>421</td>
                <td>Too Many Connections</td>
                <td>连接太多。服务器到客户端的连接数超过允许范围</td>
            </tr>
            <tr>
                <td>426</td>
                <td>Upgrade Required</td>
                <td>需要升级，通常是需要客户端切换到TLS/1.0协议</td>
            </tr>
        </table>
    </div>

    <div class="ltable showimg">服务器错误</div>
    <div class="img">
        <table>
            <tr>
                <th>状态码</th><th>英文释文</th><th>说明</th>
            </tr>
            <tr>
                <td>500</td>
                <td>Internal Server Error</td>
                <td>内部服务器错误。通常是源代码错误</td>
            </tr>
            <tr>
                <td>501</td>
                <td>Not Implemented</td>
                <td>尚未实施。服务器无法识别请求的方法</td>
            </tr>
            <tr>
                <td>502</td>
                <td>Bad Gateway</td>
                <td>错误网关。服务器作为网关或者代理工作的服务器尝试进行请求时，从上游服务器获取资源未成功</td>
            </tr>
            <tr>
                <td>503</td>
                <td>Service Unavailable</td>
                <td>服务不可用。服务器由于超载，当前无法处理该请求或延迟处理</td>
            </tr>
            <tr>
                <td>504</td>
                <td>Gateway Timeout</td>
                <td>网关超时。服务器作为网关或者代理服务器进行请求时，上游服务器未能及时响应</td>
            </tr>
        </table>
    </div>
</ul>

<div class="dt">非通讯协议</div>
<ul>
    <div class="ltable showimg">BSD协议</div>
    <div class="img">
        <li>BSD协议是一种开源协议，当发布的源代码含有使用了BSD协议的源代码或在其基础上进行二次开发时，需要满足三个条件:<br>
            * 如果再发布的产品中包含源代码，则在源代码中必须带有原来代码中的BSD协议。<br>
            * 如果再发布的只是二进制类库/软件，则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。<br>
            * 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。</li>
        <li></li>
    </div>

</ul>


</body>
</html>